class Solution:
    def combinationSum3(self, k: int, n: int) -> List[List[int]]:
        # 定义回溯函数，参数为k、n、nums、start
        def backtrack(k,n,nums,start):
            # 如果k为0且n为0，说明找到了一组解，将其加入res中
            if k==0 and n==0:
                res.append(nums[:])
                return  
            # 遍历从start到10的数字
            for i in range(start,10):
                # 如果i大于n，说明已经超过了目标值，跳出循环
                if i>n:
                    break
                # 将i加入nums中
                nums.append(i)
                # 递归调用回溯函数，参数为k-1、n-i、nums、i+1
                backtrack(k-1,n-i,nums,i+1)
                # 将nums中的最后一个元素弹出
                nums.pop()
        # 定义res列表，用于存储所有解
        res=[]
        # 调用回溯函数，参数为k、n、空列表、1
        backtrack(k,n,[],1)
        # 返回res
        return res